; Options for the S/390 / zSeries port of the compiler.

; Copyright (C) 2005-2015 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3.  If not see
; <http://www.gnu.org/licenses/>.

HeaderInclude
config/s390/s390-opts.h

; The architecture name to use in diagnostics.
Variable
const char *s390_arch_string

Variable
int s390_tune_flags

Variable
int s390_arch_flags

Variable
HOST_WIDE_INT s390_warn_framesize = 0

m31
Target Report RejectNegative Negative(m64) InverseMask(64BIT)
31 bit ABI

m64
Target Report RejectNegative Negative(m31) Mask(64BIT)
64 bit ABI

march=
Target RejectNegative Joined Enum(processor_type) Var(s390_arch) Init(PROCESSOR_max)
Generate code for given CPU

Enum
Name(processor_type) Type(enum processor_type)

EnumValue
Enum(processor_type) String(g5) Value(PROCESSOR_9672_G5)

EnumValue
Enum(processor_type) String(g6) Value(PROCESSOR_9672_G6)

EnumValue
Enum(processor_type) String(z900) Value(PROCESSOR_2064_Z900)

EnumValue
Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)

EnumValue
Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)

EnumValue
Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)

EnumValue
Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)

EnumValue
Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)

EnumValue
Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)

EnumValue
Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)

mbackchain
Target Report Mask(BACKCHAIN)
Maintain backchain pointer

mdebug
Target Report Mask(DEBUG_ARG)
Additional debug prints

mesa
Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
ESA/390 architecture

mhard-dfp
Target Report Mask(HARD_DFP)
Enable decimal floating point hardware support

mhard-float
Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT)
Enable hardware floating point

mhotpatch=
Target RejectNegative Report Joined Var(s390_deferred_options) Defer
Takes two non-negative integer numbers separated by a comma.
Prepend the function label with the number of two-byte Nop
instructions indicated by the first.  Append Nop instructions
covering the number of halfwords indicated by the second after the
label.  Nop instructions of the largest possible size are used
(six, four or two bytes), beginning with the largest possible
size.  Using 0 for both values disables hotpatching.

mlong-double-128
Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
Use 128-bit long double

mlong-double-64
Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
Use 64-bit long double

mhtm
Target Report Mask(OPT_HTM)
Use hardware transactional execution instructions

mvx
Target Report Mask(OPT_VX)
Use hardware vector facility instructions and enable the vector ABI

mpacked-stack
Target Report Mask(PACKED_STACK)
Use packed stack layout

msmall-exec
Target Report Mask(SMALL_EXEC)
Use bras for executable < 64k

msoft-float
Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT)
Disable hardware floating point

mstack-guard=
Target RejectNegative Joined UInteger Var(s390_stack_guard)
Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered

mstack-size=
Target RejectNegative Joined UInteger Var(s390_stack_size)
Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit

mtune=
Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max)
Schedule code for given CPU

mmvcle
Target Report Mask(MVCLE)
mvcle use

mzvector
Target Report Mask(ZVECTOR)
Enable the z vector language extension providing the context-sensitive vector macro.

mwarn-dynamicstack
Target RejectNegative Var(s390_warn_dynamicstack_p)
Warn if a function uses alloca or creates an array with dynamic size

mwarn-framesize=
Target RejectNegative Joined
Warn if a single function's framesize exceeds the given framesize

mzarch
Target Report RejectNegative Negative(mesa) Mask(ZARCH)
z/Architecture

mbranch-cost=
Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1)
Set the branch costs for conditional branch instructions.  Reasonable
values are small, non-negative integers.  The default branch cost is
1.

mlra
Target Report Var(s390_lra_flag) Init(1) Save
Use LRA instead of reload
